package persistent.dao;

import java.util.List;

import model.TExaminationPaper;
import model.TExaminationPaperContent;

/**
 * 试卷信息处理业务接口
 * @author 徐震霖
 * @since 2019-02-21
 */
public interface IExaminationPaperDAO {

	/**
	 * 添加一张试卷信息
	 * @param paper 试卷信息对象
	 * @param contents 试卷内容（题目）对象信息列表
	 * @return 成功返回true，失败返回null
	 */
	public boolean addPaper(TExaminationPaper paper, List<TExaminationPaperContent> contents);
	
	/**
	 * 删除一个试卷信息（删除试卷信息前要先删除试卷内容信息（题目））
	 * @param paperid 试卷编号
	 * @return 成功返回true，失败返回null
	 */
	public boolean deletePaper(int paperid);
	
	/**
	 * 根据试卷编号得到一个试卷信息
	 * @param paperid 试卷编号
	 * @return 成功返回试卷信息对象，失败返回null
	 */
	public TExaminationPaper getTPaper(int paperid);
	
	/**
	 * 根据条件查询所有试卷信息
	 * @param strWhere 查询条件
	 * @return 成功返回试卷对象列表，失败返回null
	 */
	public List<TExaminationPaper> getPapers(String strWhere);
	
	/**
	 * 根据条件分页查询所有试卷信息
	 * @param strWhere 查询条件
	 * @param currentPage 当前页
	 * @param pageSize 每页条数
	 * @return 成功返回试卷对象列表，失败返回null
	 */
	public List<TExaminationPaper> getPapersByPage(String strWhere, int currentPage, int pageSize);
	
	/**
	 * 根据条件得到试卷内容（题目）信息
	 * @param strWhere 查询条件
	 * @return 成功返回试卷内容对象列表，失败返回null
	 */
	public List<TExaminationPaperContent> getContents(String strWhere);
	
	/**
	 * 根据条件分页得到试卷内容（题目）信息
	 * @param strWhere 查询条件
	 * @param currentPage 当前页
	 * @param pageSize 每页条数
	 * @return 成功返回试卷内容对象列表，失败返回null
	 */
	public List<TExaminationPaperContent> getContentsByPage(String strWhere, int currentPage, int pageSize);
	
}
